Many companies have existing enterprise or “backend” systems, sometimes also referred to as mainframe systems. Generally speaking, these enterprise systems represent the complex computer environment necessary to perform large scale enterprise computing. The environment may be represented by an individual, large scale computer or groups of smaller networked computers networked together to create a single instance of powerful computing capability. The enterprise systems often run large-scale application software packages that may support any number of analytics, processes, data reporting, and other functions in the business organization, including, as examples, enterprise resource planning (ERP) systems, inventory systems, or customer relationship management (CRM) software. The hardware for the enterprise systems often utilize various servers and storage media, and associated software, to manage large volumes of critical data, while maintaining high levels of data security and performance.
As technology has continued to develop, the market has continued to shift toward a desire for more mobile applications that can be integrated with existing such legacy systems, but utilized directly on mobile devices, like a smart phone, tablet, or other “mobile” device. Unfortunately, enterprise systems that organizations have traditionally relied upon are not easily integrated with mobile applications. Organizations that want mobile device software applications, or apps, that can tap into, read to/from, and/or interact with such systems have to invest significant time and resources to build the necessary software and application programming interfaces (APIs) to access such systems for a single mobile app. Such development can take months, and in some cases years, of complex developer work to connect mobile devices to legacy systems.
Specific mobile apps require extensive software development to implement the various functionality and features of a particular desired app. For example, an app may want to interact with Facebook, interact with one or more databases of a mainframe/enterprise/back end system, each having individual drivers and protocols, require specific user authentication, and follow certain security protocols. All of these features and functionalities must be individually developed, configured, and integrated. These same difficulties may exist even if not accessing or interacting with mainframe/enterprise/backend systems.
Development of the mobile app often includes defining the desired functionality of the app, capturing points of information, capturing points of integration, capturing system behaviors, each discussed in more detail below. This is traditionally done through a manual review and analysis by the app developer, and often in conjunction with the owner/operator of the mainframe/enterprise/back end system. Once the functionality, points of information, points of integration, and system behaviors are understood, an app developer can start the actual software development, which can be a very time-intensive and expensive process. The eventually developed app will reside on the mobile devices, but often interacts with the mainframe/enterprise/back end system through code residing on the same mainframe/enterprise/back end systems. Alternatively, the app may interact through an “intermediary” system, or middleware, i.e., a server application stored in a “server farm”, which interacts with the mainframe/enterprise/back end system.
The one-off, project-based solutions that have traditionally be implemented have become unsustainable for many users. The industry does not currently have systems or methods for cost-effectively defining such mainframe/enterprise/backend systems, comprised of disparate data sources, that results in a single, consumable standard API complying with open specifications.